home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / divers / bubbles / auto / xssinst.txt < prev   
Text File  |  1998-05-03  |  5KB  |  99 lines

  1.             XSSINST.PRG  V1.2 - Copyright (c) 1997-98 by Ulli Gruszka
  2.  
  3.     p      Dieses Programm ist ein Bestandteil des BUBBLES-Archives!      q
  4.     p Gesonderte Verwendung nur mit schriftlicher Genehmigung des Autors! q
  5.  
  6.   ===========================================================================
  7.  
  8.   XSSINST.PRG installiert eine Schnittstelle zwischen Bildschirmschonern und
  9.   Programmen, die unter Nichtbeachtung der Fenster-Rechtecklisten auf den
  10.   Bildschirm ausgeben müssen (Zeit/Datum-Anzeige, Speicher-Info, Hilfe-Texte,
  11.   Objekt-Info etc.).
  12.   Der Bildschirmschoner BUBBLES benutzt die Schnittstelle zusätzlich zur
  13.   Kommunikation mit seinen Modulen. Ohne diese Schnittstelle ist das Modul-
  14.   Schonen nicht möglich.
  15.   Zur Installation der Schnittstelle muß XSSINST.PRG im AUTO-Ordner gestartet
  16.   werden. Bitte stellen Sie zunächst sicher, daß die Schnittstelle nicht
  17.   bereits von einem anderen Tool in einer Version kleiner als 1.01 installiert
  18.   wurde.
  19.   Wird XSSINST.PRG manuell erneut gestartet, so führt es einen Schnittstellen-
  20.   Reset durch.
  21.  
  22.   ===========================================================================
  23.  
  24.   Hinweise für Programmierer:
  25.   ===========================
  26.  
  27.   XSSINST installiert die XSSI-Schnittstelle in der Version 0x101. Zunächst
  28.   wird geprüft, ob die Schnittstelle bereits vorhanden ist. Ist dies der Fall
  29.   und liegt die Schnittstelle in einer Version >= 1.01 vor, so terminiert
  30.   XSSINST.PRG mit einem entsprechenden Hinweis.
  31.   Ist die Schnittstelle in einer Version < 1.01 vorhanden, so wird die
  32.   Installation mit einer Fehlermeldung abgebrochen.
  33.  
  34.   Existiert noch kein Cookie-Jar, so wird dieser erstmals mit Platz für
  35.   insgesamt 16 Cookies angelegt.
  36.   Ist im Cookie-Jar kein Platz mehr für einen weiteren Cookie, so wird
  37.   globaler Speicher für den bestehenden Jar und 16 weitere Cookies reserviert,
  38.   der Jar dorthin kopiert und _p_cookies umgesetzt.
  39.  
  40.   Nun wird der XSSI-Cookie angelegt, dessen Wert ein Zeiger auf die folgende
  41.   Struktur ist:
  42.  
  43.    typedef struct {
  44.       LONG  id;           /* Analog zum Vorgehen beim XBRA-Verfahren
  45.                              die ID des Bildschirmschoners -> BBLS        */
  46.       WORD  version;      /* Version des XSSI-Protokolls   -> 0x101       */
  47.       WORD  save_stat;    /* Mitteilung, ob gerade geschont wird. 0=nein  */
  48.       WORD  prg_stat;     /* Status des Programms:
  49.                              0= normal schonen, 1= niemals schonen,
  50.                             -1= sofort schonen.                           */
  51.       LONG  vec_stat;     /* Bitfeld, in dem der Status der einzelnen
  52.                              überwachten Vektoren eingetragen ist.
  53.                              Ein gesetztes Bit bedeutet, Vektor aktiv,
  54.                              ein nicht gesetztes Bit, Vektor inaktiv.     */
  55.    } INFOXSSI;
  56.  
  57.   Die Belegung von vec_stat:
  58.       Bit-Nr.   Vektor
  59.       =======   ======
  60.          0      Tastatur
  61.          1      Maus
  62.          2      Joystick                        (*)
  63.          3      Midi                            (*)
  64.          4      Modem-1                         (*)
  65.          5      Modem-2  (SCC B)                (*)
  66.          6      Serial-1                        (*)
  67.          7      Serial-2 <-> LAN-Port (SCC A)   (*)
  68.        8-14     sonstige Vektoren               (*)
  69.         15      Fensterstapel
  70.  
  71.                (*) Bits werden von BUBBLES ignoriert
  72.  
  73.   Die Bits 0, 1 und 15 werden von BUBBLES nur während des Schonens
  74.   ausgewertet. Module haben also die Möglichkeit, die ansonsten nicht
  75.   konfigurierbaren Weck-Ereignisse (Tastatur, Maus und Änderungen am
  76.   Fenster-Stapel) temporär zu unterdrücken. Somit sind auch interaktive
  77.   Module denkbar, die Benutzereingaben erwarten und auswerten.
  78.  
  79.  
  80.   Unterstützung der Schnittstelle:
  81.   ================================
  82.  
  83.   Jedes Programm, das nicht über die Fenster-Rechtecklisten auf den
  84.   Bildschirm ausgibt, sollte nach dem Cookie suchen. Ist der Cookie
  85.   vorhanden, so muß vor der Ausgabe in save_stat nachsehen werden, ob der
  86.   Bildschirm gerade geschont wird (<>0). Ist dies der Fall, darf so lange
  87.   keine Ausgabe stattfinden, bis save_stat wieder den Wert 0 enthält.
  88.  
  89.   Applikationen können Bildschirmschoner, die das Protokoll kennen, zum
  90.   sofortigen Schonen auffordern, indem sie prg_stat den Wert -1 zuweisen.
  91.   Ein denkbarer Anwendungsfall sind Druckausgaben und längere Such- oder
  92.   Sortieroperationen, deren Ablauf nicht am Bildschirm verfolgt werden
  93.   muß. Setzt die Applikation prg_stat wieder auf 0 (darf auf keinen Fall
  94.   vergessen werden!), so beendet der Schoner seine Aktivität.
  95.  
  96.   Im Zweifelsfall kann eine Schnittstellen-Reset durchgeführt werden, indem
  97.   XSSINST.PRG manuell gestartet wird.
  98.  
  99.